package httpRequestUtils

import (
	"crypto/tls"
	"errors"
	"net/http"
	"time"

	"github.com/gorilla/websocket"
	"go.uber.org/zap"
)

// ConnectWebSocket
//
//	@Description: 连接 WebSocket
//	@param url WebSocket URL
//	@param timeout 连接超时时间
//	@param maxRetries 最大重试次数
func ConnectWebSocket(logger *zap.Logger, url string) (*websocket.Conn, error) {
	dialer := &websocket.Dialer{
		HandshakeTimeout: 5 * time.Second,
		TLSClientConfig: &tls.Config{
			InsecureSkipVerify: true,
		},
	}
	conn, _, err := dialer.Dial(url, http.Header{})
	if err != nil {
		logger.Error("无法和语音识别API服务器创建连接", zap.Error(err))
		return nil, errors.New("无法和语音识别API服务器创建连接，请检查服务器IP设置是否正确")
	}
	return conn, nil
}
